﻿using MapleLeaf.Pay.Trade;
using System;
using System.ComponentModel;

namespace MapleLeaf.Pay.Pay {

    public class HongshPayTrade : INotifyPropertyChanged {

        public event PropertyChangedEventHandler PropertyChanged;


        public string TerminalId {
            get => _TerminalId;
            set {
                _TerminalId = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("TerminalId"));
            }
        }


        public string ClientTradeId {
            get => _ClientTradeId;
            set {
                _ClientTradeId = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ClientTradeId"));
            }
        }

        public string TradeId {
            get => _TradeId;
            set {
                _TradeId = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("TradeId"));
            }
        }

        public int Amount {
            get => _Amount;
            set {
                _Amount = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Amount"));
            }
        }

        public int ActualAmount {
            get => _ActualAmount;
            set {
                _ActualAmount = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ActualAmount"));
            }
        }

        public string ClientIP {
            get => _ClientIP;
            set {
                _ClientIP = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ClientIP"));
            }
        }


        public string ClientName {
            get => _ClientName;
            set {
                _ClientName = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("ClientName"));
            }
        }


        public TradeState State {
            get => _State;
            set {
                _State = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("State"));
            }
        }
        public TradePayway Payway {
            get => _Payway;
            set {
                _Payway = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Payway"));
            }
        }


        public string Payer {
            get => _Payer;
            set {
                _Payer = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Payer"));
            }
        }


        public string StateDescript {
            get => _StateDescript;
            set {
                _StateDescript = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("StateDescript"));
            }
        }


        public DateTime UpdateTime {
            get => _UpdateTime;
            set {
                _UpdateTime = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("UpdateTime"));
            }
        }


        public DateTime CreateTime {
            get => _CreateTime;
            set {
                _CreateTime = value;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("CreateTime"));
            }
        }

        public HongshPayTrade() {
            Class18.LVfVa0hzXO4Jq();
            UpdateTime = CreateTime = DateTime.Now;
        }


        private string _TerminalId;


        private string _ClientTradeId;


        private string _TradeId;


        private int _Amount;

        private int _ActualAmount;


        private string _ClientIP;


        private string _ClientName;


        private TradeState _State;


        private TradePayway _Payway;


        private string _Payer;


        private string _StateDescript;

        private DateTime _UpdateTime;


        private DateTime _CreateTime;
    }
}
